#include "gpio_driver.h"

void USER_InitGPIO(void)
{

	GPIO_setPinConfig(GPIO_14_GPIO14);


	GPIO_setPadConfig(myGPIO0, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(myGPIO0, GPIO_QUAL_SYNC);
    GPIO_setDirectionMode(myGPIO0, GPIO_DIR_MODE_OUT);
    GPIO_setControllerCore(myGPIO0, GPIO_CORE_CPU1);

    GPIO_setPadConfig(myGPIO1, GPIO_PIN_TYPE_PULLUP);
    GPIO_setQualificationMode(myGPIO1, GPIO_QUAL_SYNC);
    GPIO_setDirectionMode(myGPIO1, GPIO_DIR_MODE_IN);
    GPIO_setControllerCore(myGPIO1, GPIO_CORE_CPU1);

	GPIO_setPadConfig(myGPIO14, GPIO_PIN_TYPE_STD | GPIO_PIN_TYPE_PULLUP);
	GPIO_setQualificationMode(myGPIO14, GPIO_QUAL_ASYNC);
	GPIO_setDirectionMode(myGPIO14, GPIO_DIR_MODE_IN);
	GPIO_setControllerCore(myGPIO14, GPIO_CORE_CPU1);

    GPIO_setPinConfig(GPIO_15_GPIO15);
    GPIO_setDirectionMode(15, GPIO_DIR_MODE_IN);
    GPIO_setQualificationMode(15, GPIO_QUAL_ASYNC);

	GPIO_setPadConfig(mysyncGpio, GPIO_PIN_TYPE_STD | GPIO_PIN_TYPE_PULLUP);
	GPIO_setQualificationMode(mysyncGpio, GPIO_QUAL_SYNC);
	GPIO_setDirectionMode(mysyncGpio, GPIO_DIR_MODE_IN);
	GPIO_setControllerCore(mysyncGpio, GPIO_CORE_CPU1);

	GPIO_setPinConfig(mySyncGpio_Input);
    GPIO_setInterruptType(GPIO_INT_XINT1, GPIO_INT_TYPE_FALLING_EDGE);
    GPIO_setInterruptPin(mysyncGpio, GPIO_INT_XINT1);
    GPIO_enableInterrupt(GPIO_INT_XINT1);

    Interrupt_register(INT_XINT1, &gpioInterruptHandler);
    Interrupt_enable(INT_XINT1);

}

void USER_initINPUTXBARINPUT(void)
{
	XBAR_setInputPin(myINPUTXBARINPUT0_INPUT, myINPUTXBARINPUT0_SOURCE);

    XBAR_setInputPin(myeCAP_SOURCE_INPUT, myeCAP_SOURCE);

}

__interrupt void gpioInterruptHandler(void)
{
	int i=0;
	int j=0;
    SysCtl_disablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);
    for(i=0;i<30000;i++)
    {
    	j++;
    }
    EPWM_setTimeBaseCounter(myEPWM1_BASE, 0U);
    EPWM_setTimeBaseCounter(myEPWM2_BASE, 0U);
    SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);
    Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP1);
}
